Вычислите
факториал числа.
Вход. Одно целое число n
(0 ≤ n ≤ 20).
Выход. Выведите значение n!
Пример
входа |
Пример
выхода |
3 |
6 |
элементарная
задача
Анализ алгоритма
Факториалом
числа n называется произведение чисел от 1 до n:
n! = 1 * 2 * … * (n
– 1) * n
Следует
запомнить, что факториал нуля равен единице:
0! = 1
Например:
1! = 1;
2! = 1 * 2 = 2;
3! = 1 * 2 * 3 = 6;
4! = 1 * 2 * 3 * 4 = 24;
Заметим, что
например
5! = (1 * 2 * 3 * 4) * 5 = 4! * 5;
100! = (1 * 2 * … * 99) * 100 = 99! * 100;
n! = 1 * 2 * … * (n
– 1) * n = (n – 1)! * n;
Факториал числа
можно вычислить либо при помощи цикла, либо при помощи рекурсии. Во втором
случае следует воспользоваться рекуррентной формулой:
fact(n) =
Реализация алгоритма
Читаем входное значение n.
scanf("%lld",&n);
Вычисляем факториал числа res
= n! = 1 * 2 * 3 * … * n.
res = 1;
for(i = 1; i <= n; i++)
res = res * i;
Выводим ответ.
printf("%lld\n",res);
Реализация алгоритма – рекурсия
Функция fact вычисляет факториал числа n.
long long fact(long long n)
{
if (n == 0) return 1;
return
fact(n-1) * n;
}
Основная часть программы. Читаем входное значение n.
scanf("%lld",&n);
Вычисляем и выводим ответ.
res = fact(n);
printf("%lld\n",res);
Java реализация – рекурсия
import java.util.*;
public class Main
{
static long
fact(int n)
{
if (n ==
0) return 1;
return fact(n - 1)
* n;
}
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int n = con.nextInt();
long res = fact(n);
System.out.println(res);
con.close();
}
}
Python реализация – цикл
Читаем входное значение n.
n = int(input())
Вычисляем факториал числа res
= n! = 1 * 2 * 3 * … * n.
res = 1
for i in range(1,n+1):
res *= i
Выводим ответ.
print(res)
Python реализация – рекурсия
Функция fact вычисляет факториал числа n.
def fact(n):
if n == 0: return 1
return n * fact(n-1)
Основная часть программы. Читаем входное значение n.
n = int(input())
Вычисляем и выводим ответ.
print(fact(n))